<?php


namespace app\test\controller;


use think\Db;

class Chain
{
    /*where()链式查询方法*/
    public function index(){
//        $result = Db::name('user')->where([
//            'price'     =>      100,
////            'gender'    =>      '男'
//        ])->select();
        // 2.关联数组查询，通过数组里的数组品专方式来查询
//        return Db::getLastSql();
//        $result = Db::name('user')->where([
//            'price'     => [60,70,80],
//            'gender'    => '男'
//        ])->select();

        // 3.索引数组查询，通过数组里的数组拼装方式来查询：
//        $result = Db::name('user')->where([
//           ['price','=','100'],
//           ['gender','=','男']
//        ])->select();

        // 4.将复杂的数组组装后，通过变量传递，将增加可读性
        //先创建一个数组
        //最推荐这种查询方式
//        $map[] = ['gender','=','男'];
//        $map[] = ['price','in',[60,70,80]];
//        $result = Db::name('user')->where($map)->select();


        // 5.字符串形式传递，简单粗暴的查询方式
//       $result =  Db::name('user')->where('gender="男" AND price IN (60,70,80)')->select();



        // 1.使用field()方法查找指定字段

//        $result = Db::name('user')->select();
        //字符串形式
//        $result = Db::name('user')->field('id,username,email')->select();

        //数组形式
//        $result = Db::name('user')->field(['id,username,email'])->select();

        // 2.使用field()方法，给指定的字段设置别名
//        $result = Db::name('user')->field('id,username as name,email')->select();

        // 3.在field()方法里，可以直接给字段设置mysql函数
//        $result = Db::name('user')->field('SUM(price)')->select();

        // 4.对于更加复杂的mysql函数，必须使用字段数组形式
//        $result = Db::name('user')->field(['id','LEFT(email,5)'=>'leftemail',])->select();

        // 5.使用field(true)的布尔参数，可以显示的查询获取所有字段，而不是*
//        $result = Db::name('user')->field(true)->select();

        // 6.使用field()方法中字段排除，可以屏蔽掉想要不显示的字段
        $result = Db::name('user')->field('details,email',true)->select();



//        return  Db::getLastSql();
        return json($result);

    }
    public function insert()
    {
        $data = [
            'username' => '小钟',
            'password' => '123',
            'gender' => '男',
            'email' => 'xiaozhong@163.com',
            'price' => 90,
            'details'=>'123',
            'create_time' => date('Y-m-d H:i:s')
        ];
        $insert = Db::name('user')->field('username,password,details,create_time')->insert();
        return $insert;

    }
    //给数据库添加一个别名
    public function alias(){
        $result = Db::name('user')->alias('a')->field('details,uid',true)->select();
        return json($result);
    }
}